package com.qidian.permission.service;

import com.qidian.permission.entity.Permission;
import com.qidian.permission.util.entity.PerResult;

import java.util.List;

/**
 * @Author 18林梦雅
 * @Company 起点编程
 * @Time 2023/10/18 20:14
 * @Description
 */
public interface PermissionService {


    //根据父权限编号查询权限数据
    PerResult selectAllByParentId(Long parentId);





    //根据编号查询权限的接口
    PerResult selectByPermissionId(Long permissionId);


    //添加权限
    PerResult addPermission(Permission permission);
    // 根据编号编辑权限的接口
    PerResult updateByPermissionId(Permission permission);

    /**
     * 查询所有的权限
     * @return
     */
    PerResult selectAll();
    //加载根据userId查询对应的权限
    PerResult queryByUserId(Long userId);
    // 递归查询子权限
    public List<Permission> selectByParentId(Long parentId);

//进行处理修改后的数据,因为复杂,就先删除数据库对应的userId,然后重新添加新的对应的权限
    public PerResult settingUserPermission(Long userId, Long[] permissionIds);


    //加载根据 roleId 查询对应的权限
    PerResult queryByRoleId(Long roleId);


    //设置新的数据:需要用到先删除原来的数据,再进行添加
    public PerResult settingRolePermission(Long roleId, Long[] permissionIds);


    public PerResult deleteUpdateSelect(Long[] permissionIds);



}
